
2023-11-30
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap
import seaborn as sns
import os
# Remplacez 'votre_fichier.csv' par le chemin vers votre fichier CSV
chemin_fichier_csv = 'Mesure_mensuelle_Region_Occitanie_Polluants_Principaux.csv'
# Charger le fichier CSV dans un DataFrame
df = pd.read_csv(chemin_fichier_csv)
# Créer un dégradé de couleurs pour la palette
couleurs = sns.color_palette("coolwarm", as_cmap=True)
# Créer un diagramme circulaire (camembert) pour la variable 'nom_dept'
plt.figure(figsize=(10, 8))
sns.set(style="whitegrid") # Style de fond pour une meilleure lisibilité
# Tracer le camembert avec le dégradé de couleurs
df['nom_dept'].value_counts().plot.pie(autopct='%1.1f%%', startangle=140, cmap=couleurs)
plt.title('Répartition des données par département')
plt.axis('equal') # Assure que le camembert est dessiné comme un cercle
plt.ylabel('') # Supprimer l'étiquette de l'axe y pour plus de clarté
plt.show()
#calcule de la valeur seuil
moyenne_pollution = df['valeur'].mean()
ecart_type_pollution = df['valeur'].std()
print("Moyenne de la pollution:", moyenne_pollution)
print("Écart type de la pollution:", ecart_type_pollution)
print("Valeur la plus élevée:", seuil_valeur_elevee)
# Charger le fichier CSV dans un DataFrame
chemin_fichier_csv = 'Mesure_mensuelle_Region_Occitanie_Polluants_Principaux.csv'
df = pd.read_csv(chemin_fichier_csv)
# Créer une colonne 'geometry' avec les coordonnées X et Y sous forme de GeoJSON
df['geometry'] = df.apply(lambda row: {"type": "Point", "coordinates": [row['X'], row['Y']]}, axis=1)
# Valeur seuil
SEUIL_DE_VALEUR_ELEVEE = 23
# Créer une carte avec le service WMTS
carte = Map(center=(43.611015, 3.876733), zoom=9)
# Ajouter une couche WMTS à la carte
wmts_url = "https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/WMTS"
wmts_layer = TileLayer(url=wmts_url, name="WMTS Layer")
carte.add_layer(wmts_layer)
# Créer une GeoJSON FeatureCollection à partir des données de votre DataFrame
geojson_data = {
"type": "FeatureCollection",
"features": []
}
# Marqueurs pour les valeurs élevées
high_value_markers = []
for index, row in df.iterrows():
feature = {
"type": "Feature",
"geometry": row['geometry'],
"properties": {"nom_dept": row['nom_dept'], "valeur": row['valeur']}
}
geojson_data['features'].append(feature)
# Ajouter un marqueur si la valeur de pollution est élevée
if row['valeur'] > SEUIL_DE_VALEUR_ELEVEE:
marker = Marker(location=(row['Y'], row['X']), draggable=False, title=f"Valeur: {row['valeur']}")
high_value_markers.append(marker)
# Créer une couche GeoJSON pour les zones polluées
geojson_layer = GeoJSON(data=geojson_data, style={'color': 'red', 'opacity': 0.8, 'weight': 1.5})
carte.add_layer(geojson_layer)
# Ajouter les marqueurs à la carte
for marker in high_value_markers:
carte.add_layer(marker)
# Trouver l'indice de la valeur maximale dans la colonne 'valeur'
indice_max = df['valeur'].idxmax()
# Obtenir les coordonnées X et Y pour l'emplacement de la valeur maximale
coordonnees_max = df.loc[indice_max, ['X', 'Y']]
print("Coordonnées de l'endroit avec la valeur la plus élevée:", coordonnees_max)
# Afficher la carte
display(widgets.HBox([carte]))
Moyenne de la pollution: 23.731417458945568
Écart type de la pollution: 25.289153037830907
Valeur la plus élevée: 74.30972353460739
Coordonnées de l'endroit avec la valeur la plus élevée: X 3.82806
Y 43.6116
Name: 555, dtype: object
Tableau des scores